<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>微信公众号支付</title>
</head>
<body>
<a href="javascript:void(0)" onclick="onBridgeReady()">发起支付</a>
</body>
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript">
wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
    appId: '#(appId)', // 必填，公众号的唯一标识
    timestamp: '#(hashMap.timestamp)', // 必填，生成签名的时间戳
    nonceStr: '#(hashMap.noncestr)', // 必填，生成签名的随机串
    signature: '#(hashMap.signature)',// 必填，签名，见附录1
    jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
});

	
	 function onBridgeReady(){
		wx.chooseWXPay({
			timestamp: '#(hashMap.timestamp)', // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
			nonceStr: '#(hashMap.noncestr)', // 支付签名随机串，不长于 32 位
			package: 'prepay_id=#(prepay_id)', // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
			signType: 'MD5', // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
			paySign: '#(sign)', // 支付签名
			success: function (res) {
		      // 支付成功后的回调函数
		      alert("支付成功");
		    },//如果你按照正常的jQuery逻辑，下面如果发送错误，一定是error，那你就太天真了，当然，jssdk文档中也有提到
		      fail: function(res) {
		            //接口调用失败时执行的回调函数。
		       alert("接口调用失败");
		    },complete: function(res) {
		            //接口调用完成时执行的回调函数，无论成功或失败都会执行。
		    },cancel: function(res) {
		            //用户点击取消时的回调函数，仅部分有用户取消操作的api才会用到。
		       alert("用户取消支付");
		    },trigger: function(res) {
		            //监听Menu中的按钮点击时触发的方法，该方法仅支持Menu中的相关接口。
		    }
			});
	}
</script>
</html>